/*
 * TestDirectorio.cpp
 *
 *  Created on: Mar 23, 2010
 *      Author: jgrande
 */

#include <assert.h>

#include "../../Aplicacion/Infraestructura/DirectorioImpl.h"

using aplicacion::DirectorioSingleton;
using aplicacion::Directorio;
using aplicacion::InformacionCreacionUniverso;
using aplicacion::t_listaUniversos;

int main(int argc, char* argv[]) {
	Directorio& directorio = DirectorioSingleton::instance();
	InformacionCreacionUniverso universo1, universo2;

	if(directorio) {
		universo1._minPlanetas = 10;
		universo1._maxPlanetas = 20;
		universo1._timeout = 5;
		directorio.registrarNuevo(universo1);
		assert(universo1._idUniverso == 1);

		universo2._minPlanetas = 30;
		universo2._maxPlanetas = 40;
		universo2._timeout = 10;
		directorio.registrarNuevo(universo2);
		assert(universo2._idUniverso == 2);

		t_listaUniversos universos = directorio.listarUniversosAbiertos();
		t_listaUniversos::iterator it = universos.begin();
		assert(it->_idUniverso==universo1._idUniverso);
		assert(it->_minPlanetas==universo1._minPlanetas);
		assert(it->_maxPlanetas==universo1._maxPlanetas);
		assert(it->_timeout==universo1._timeout);
		it++;
		assert(it->_idUniverso==universo2._idUniverso);
		assert(it->_minPlanetas==universo2._minPlanetas);
		assert(it->_maxPlanetas==universo2._maxPlanetas);
		assert(it->_timeout==universo2._timeout);
		it++;
		assert(it==universos.end());

		std::cout << "Test OK!\n";
	}

	return 0;
}
